"""
基础RNN计算单元的使用,这里只是用于原理参考,实际计算时不需要
"""

import torch

# 当前一批的样本数
batch_size = 1
# 在RNN中循环计算的次数
seq_len = 3
# 输入的特征数
input_size = 4
# 输出的特征数
hidden_size = 2

# 定义RNN的基础单元
cell = torch.nn.RNNCell(input_size, hidden_size)

# 定义数据集,seq_len放到第一个维度,用来遍历每一个循环
dataset = torch.randn(seq_len, batch_size, input_size)
# 初始化hidden的初始输入
hidden = torch.zeros(batch_size, hidden_size)

# 循环计算每一次的RNN循环
for data in dataset:
    hidden = cell(data, hidden)
    print(f"data shape: {data.shape}, hidden shape: {hidden.shape},hidden:{hidden}")
